public class InterfaceExample4 {
    //这个接口主要用于克隆
    public static void main(String[] args) throws CloneNotSupportedException {
        Student student1 = new Student("xiaoming", 10);
        Student student2 = (Student) student1.clone();
        //这里需要进行强制转型的原因是student2调用了父类Object中的方法,
        //但是这里的student1是子类

        System.out.println("修改前：");
        System.out.println(student1);
        System.out.println(student2);
        student1.age = 12;
        System.out.println("修改后");
        System.out.println(student1);
        System.out.println(student2);
        /*
        开始的时候这个铜鼓student1加上'  .  ' 不能直接快捷的点出来是因为Student类中没有clone方法
        就算object是全部类的子类也无法直接调用，因为该方法的权限是protected，不同包中访问只能是子类且由super访问

        然后即使我重写了方法clone还是不能进行调用的原因是 clone() 方法的返回类型是 Object，而不是 Student。
        当调用 clone() 方法并将其结果赋给 student2 时，
        编译器只知道返回的是 Object 类型的对象，因此需要显式地将其转换为 Student 类型，
        以便能够调用 Student 类中定义的方法或访问 Student 类中定义的字段。

        还有一个是异常的原因

        还必须要实现Cloneable接口
        但是这个接口是一个空接口/标记接口，只有实现了这个克隆接口才能被克隆
         */
    }
}
